package student.aistar.day12.exception;

public class FinallyDemo {
    public static void main(String[] args) {
        System.out.println(test());//1
        A a = new A();
        System.out.println(fun());//A{age=200}
    }
    //finally中修改了基本数据了下
    public static int test(){
        int i = 0;
        try {
            //此处将i自增后的结果缓存起来了, 并且这个缓存的结果就是作为最终返回去的一个结果 - 对待基本数据类型
            return ++i;
        }finally {
            ++i;
            System.out.println("i: " + i);
        }
    }

    //finally修改了对象类型的属性
    public static A fun(){
        A a = new A();
        try {
            a.i = 100;
            //return是在finally之后执行
            return a;
        }
        finally {
            //对待对象类型 - finally中的修改对象的属性值, 是对return的结果是产生了影响的
            a.i = 200;
        }
    }
}

class A{
    public int i = 18;

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("A{");
        sb.append("i=").append(i);
        sb.append('}');
        return sb.toString();
    }
}